package com.fhzn.boss.tools;

import java.security.MessageDigest;
import java.util.Base64;

/**
 * @author fhzn
 */
public class Md5HashUtil {

    // 加密密码
    public static String encryptPassword(String username, String password) {
        String concatenated = md5(username) + password;
        return md5(concatenated);
    }

    // 使用MD5算法对字符串进行加密
    private static String md5(String input) {
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            byte[] messageDigest = md.digest(input.getBytes());
            return Base64.getEncoder().encodeToString(messageDigest);
        } catch (Exception e) {
            throw new RuntimeException("MD5加密失败：" + e.getMessage());
        }
    }

    // 解密密码（MD5不可逆，无法直接解密，只能通过对比加密后的结果来验证密码）
    public static boolean verifyPassword(String username, String password, String encryptedPassword) {
        String decryptedPassword = encryptPassword(username, password);
        return decryptedPassword.equals(encryptedPassword);
    }
}
